
import Vue from 'vue'

// 1.1导入路由的包
import VueRouter from 'vue-router'
// 1.2安装路由
Vue.use(VueRouter)

// 注册vuex
import Vuex from 'vuex'
Vue.use(Vuex)

//每次刚进入网站，肯定会调用main.js,在刚调用的时候，把购物车的数据读出来，放到store中

// var car = JSON.parse(localStorage.getItem('car') || '[]')

var store = new Vuex.Store({
    state:{//this.$store.state.***
        car:[], //将购物车中商品的数据，用一个数组存储起来，在car数组中，存储一些商品的对象，我们可以暂时将这个商品设计成这个样子：
        //{ id: 商品的ID, count:要购买的数量, price:商品的单价, selected:false }
    },

    mutations:{//this.$store.commit('方法的名称'，'按需传递唯一的参数')

        addToCar(state,goodsinfo){
            //点击加入购物车，保存到store中的car上
            //分析：
            //1.如果购物车中,之前就有这个对应的商品了，那么只需要更新数量
            //2.如果没有，则直接将商品数据push 到car 中即可

            //假设 在购物车中，没有找到对应的商品
            // var flag = false;

            // state.car some(item=>{
            //     if(item.id == goodsinfo.id){
            //         item.count += parseInt(goodsinfo.count)
            //         flag = true
            //         return true //终止some循环
            //     }

            // })
        //如果循环完毕，得到的flag还是false ,则直接将商品信息 push 到购物车中
            // if(!flag){
            //     state.car.push(goodsinfo)
            // }


            // 当更新car之后，把car数组，存储到本地的localStorage中，
            // localStorage.setItem('car'.JSON.stringify(state.car))

        }
    },
    getters:{//this.$store.getters.***
        getAllCount(state){
            var c = 0;
            state.car.forEach(item =>{
                c += item.count
            })
            return c
        }
    }
})




//导入时间格式化的插件
import moment from 'moment'
//定义全局过滤器
Vue.filter("dataFormat",function(dataStr, pattern= "YYYY-MM-DD HH:mm:ss"){
    return moment(dataStr).format(pattern)
})




//2.1 导入Vue-resource
import VueResource from 'vue-resource'

//2.2安装Vue-resource
Vue.use(VueResource)





// 导入MUI的样式
import './lib/mui/css/mui.min.css'
import './lib/mui/css/icons-extra.css'




// 按需导入mint-ui中的组件
import { header,Swipe, SwipeItem,Button,Switch } from "mint-ui"
Vue.component (header.name,header)
Vue.component(Swipe.name, Swipe);
Vue.component(SwipeItem.name, SwipeItem);
Vue.component(Button.name, Button);
Vue.component(Switch.name, Switch);


// 1.3导入自己的router.js 路由模块
import router from './router.js'


import app from './App.vue'

var vm = new Vue({
    el:'#app',
    render:c => c(app),
    router, //1.4挂载路由到VM实例上
    store //将store挂载到实例上
})
